package com.example.jsp;

import jakarta.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: ws
 * Date: 2024-03-02
 * Time: 17:21
 *
 * 视图作为返回值
 */

@Controller
@RequestMapping("/jsp")
public class JspController {


    /*
    快速查找视图：
    1. 方法返回的值是字符串类型
    2. 不能添加 @ResponseBody，否则会认为返回的是json数据，而不是找视图
    3. 返回视图的名称
     */
    @GetMapping("/index")
    public String index(HttpServletRequest request) {
        request.setAttribute("name", "ws");
        // 去找视图
        return "index";
    }

    // 转发，服务器处理两次，客户端感知不到
    // 一般用于项目内的资源
    @GetMapping("/forward")
    public String forward() {
        // forward:/转发地址（即映射的地址 index）
        return "forward:/jsp/index";
    }


    // 重定向，客户端处理两次
    // 内部外部都可以
    @GetMapping("/redirect")
    public String redirect() {
        // redirect:/重定向地址（即映射的地址 index）
        return "redirect:/jsp/index";
    }


    // 重定向能直接跟 URL
    // 外部资源
    @GetMapping("/redirect/baidu")
    public String redirectBaiDu() {
        // redirect:/重定向地址（即映射的地址 index）
        return "redirect:http://www.baidu.com";
    }
}
